// login.js
Page({
  data: {
    isAgree: false,
    canIUseExit: wx.canIUse('button.open-type.exit')
  },

  onLoad() {
    // 检查基础库版本是否支持退出小程序
    if (!this.data.canIUseExit) {
      console.warn('当前基础库版本不支持直接退出小程序')
    }
  },

  // 登录按钮点击事件
  login() {
    if (!this.data.isAgree) {
      wx.showToast({
        title: '请同意用户协议和隐私政策',
        icon: 'none',
        duration: 2000
      })
      return
    }

    // 显示加载中
    wx.showLoading({
      title: '登录中...',
      mask: true
    })

    let that = this

    wx.getUserProfile({
      desc: '用于完善会员资料',
      success: (res) => {
        that.setData({
          userInfo: res.userInfo,
          innerShow: false
        });
        console.log("用户信息:", res.userInfo)

        wx.login({
          success: function (e) {
            const code = e.code;
            const params = {
              code: code,
              avatarUrl: res.userInfo.avatarUrl,
              nickName: res.userInfo.nickName,
              gender: res.userInfo.gender
            };

            console.log("登录参数:", params)

            wx.request({
              url: 'https://199shq.com/api/wxuser/login',
              data: params,
              method: 'POST',
              header: {
                'Content-Type': 'application/json',
              },
              success: function (res) {
                console.log("登录响应:", res.data)

                if (res.data.code === 200) {
                  // 存储用户信息和token
                  wx.setStorageSync('userInfo', res.data.userInfo);
                  wx.setStorageSync('token', res.data.wxToken);
                  wx.setStorageSync('lastTime', Date.parse(new Date()));

                  // 处理头像URL
                  let userInfo = res.data.userInfo;
                  if (userInfo.avatarUrl !== 'https://thirdwx.qlogo.cn/mmopen/vi_32/POgEwh4mIHO4nibH0KlMECNjjGxQUq24ZEaGT4poC6icRiccVGKSyXwibcPq4BWmiaIGuG1icwxaQX6grC9VemZoJ8rg/132') {
                    userInfo.avatarUrl = `https://199shq.com/api/common/download?name=${userInfo.avatarUrl}`
                    wx.setStorageSync('userInfo', userInfo);
                  }

                  // 更新页面和全局数据
                  that.setData({
                    userInfo: userInfo,
                    showLoginButton: false,
                    isUserProfileObtained: true,
                  });

                  const app = getApp();
                  app.globalData.userInfo = userInfo;
                  app.userInfo.showLoginButton = false;

                  // 隐藏加载提示
                  wx.hideLoading();

                  // 跳转到首页（使用redirectTo防止返回登录页）
                  // 修改后：返回上一页
                  wx.reLaunch({
                    url: '/pages/index/index'
                  });
                } else {
                  // 登录失败处理
                  wx.hideLoading();
                  wx.showModal({
                    title: '登录失败',
                    content: res.data.message || '未知错误，请重试',
                    showCancel: false
                  })
                }
              },
              fail: function (err) {
                // 请求失败处理
                wx.hideLoading();
                console.error("登录请求失败:", err)
                wx.showModal({
                  title: '网络错误',
                  content: '无法连接到服务器，请检查网络设置',
                  showCancel: false
                })
              }
            });
          },
          fail: function (err) {
            wx.hideLoading();
            console.error("获取登录码失败:", err)
            wx.showToast({
              title: '授权失败，请重试',
              icon: 'none'
            })
          }
        });
      },
      fail: function (err) {
        wx.hideLoading();
        console.error("获取用户信息失败:", err)
        wx.showModal({
          title: '授权失败',
          content: '您拒绝了授权，将无法正常使用功能',
          showCancel: false
        })
      }
    });
  },

  openPrivacyContract() {
    wx.openPrivacyContract({
      success: res => {
        console.log('openPrivacyContract success')
      },
      fail: res => {
        console.error('openPrivacyContract fail', res)
      }
    })
  },
  // 取消按钮点击事件
  cancel() {
    wx.showModal({
      title: '提示',
      content: '确定要退出小程序吗？',
      confirmText: '确认退出',
      confirmColor: '#07C160',
      cancelText: '再看看',
      success: (res) => {
        if (res.confirm) {
          // 支持退出API时使用退出功能
          if (this.data.canIUseExit) {
            console.log('进入')
            wx.exitMiniProgram()
          } else {
            console.log('进入1')
            // 不支持时返回首页或关闭所有页面
            wx.navigateBack({
              delta: 10
            })
          }
        }
      }
    })
  },

  // 协议勾选事件
  checkboxChange(e) {
    this.setData({
      isAgree: e.detail.value.includes('agree')
    })
  }
})